#ifndef FFILE_H
#define FFILE_H
#include <fstream>
#include <iostream>

/*
 *  文件流操作
 */

class Ffile
{
public:
    //与ios流中定义的流操作状态一一对应，可以使用这个值来确定打开文件的类型
    enum mode
    {
        app = 1,
        ate = 2,
        binary = 4,
        in = 8,
        out = 16,
        trunc = 32
    };

public:
    auto open(const char *, unsigned int) -> bool;
    auto close() -> void;
    //一个一个单词的读
    auto read_word() -> std::string;
    //一行一行读，这里需要注意的是，如果上一次读的时候没有读完一整行，这这次调用会接着上一次读完的位置继续向下读完一整行 
    auto read_line() -> std::string;
    //获取流标识
    inline auto get_value() -> std::fstream& {return file;}
    
private:
    std::fstream file;
};

#endif